package PlaneGame.CODE;

import java.util.Vector;

import static PlaneGame.CODE.GameFrame.mrW;

public class Enemy extends AutoBorn{
    Vector<EnemyBullet> tVector =new Vector<>();
    int explodeImageNumber;
    int blood;
    boolean haveHit;

    @Override
    void init() {
        super.init();
        haveHit=false;
    }

    @Override
    void nextDrawPos() {
        if(blood>0){
            super.nextDrawPos();
        }else {//因为这里爆炸图片的轮播方法是重写的，所以不受轮播rate的控制
            if(drawPos<imageNumber+explodeImageNumber-1){
                drawPos++;
            }else {
                effect();
            }
        }
    }
    @Override
    void touch() {
        super.touch();
        if (this.blood>0) {
            //是否被击中
            for (int i=0;i<mrW.bulletAS.size();i++) {
                if(!mrW.bulletAS.elementAt(i).haveHit
                        &&this.contain(mrW.bulletAS.elementAt(i).x,
                        mrW.bulletAS.elementAt(i).y)){
                    if(mrW.bulletAS.elementAt(i).width==10){
                        blood-=10;
                        if(blood<0){
                            blood=0;
                        }
                    } else {
                        blood--;
                    }
                    if(blood==0){
                        this.haveHit=true;
                        for (int j = 0; j < tVector.size(); j++) {
                            tVector.elementAt(j).haveHit=true;
                        }
                    }
                    mrW.bulletAS.elementAt(i).haveHit=true;
                    mrW.bulletAS.elementAt(i).on_off=false;
                }
            }
            //是否击中玩家
            if(!mrW.invalid&&!this.haveHit){
                if(mrW.contain((this.x+this.width/2),(this.y+this.height/2))){
                    this.haveHit=true;
                    if (mrW.blood>0) {
                        mrW.OhNo();
                    }
                }
            }
        }
    }
    @Override
    void effect() {
        super.effect();
        mrW.score++;
    }
    @Override
    void move() {
        if (blood>0) {
            super.move();
        }
    }
}
